1 using System.Collections;
2 using
System.Collections.Generic;
3 using
UnityEngine;
4
5 public
class DragonScript : MonoBehaviour {
6
7     
public GameObject bullet;
8     
public GameObject body;
9     
public GameObject leftWing;
10     
public GameObject rightWing;
11     
private bool rotateUp = true;
12     
private Vector3 leftWingPosition;
13
14     
// Use this for initialization
15     
void Start () {
16         leftWingPosition = leftWing.transform.localPosition;
17         InvokeRepeating (
"Shoot", 0.01f, 0.2f);
18 // InvokeRepeating (
"FlapWings", 0.01f, 0.2f);
19 // StartCoroutine(FlapWings());

20         InvokeRepeating (
"FlapWings2", 0.01f, 0.05f);
21     }
22     
23     
// Update is called once per frame
24     
void Update () {
25     }
26
27     
void Shoot () {
28 // Instantiate (bullet,
this.transform.position, Quaternion.identity);
29 // bullet.gameObject.GetComponent<Rigidbody2D> ().velocity =
new Vector3 (0, 2f, 0);
30         GameObject b = ObjectPooler.SharedInstance.GetPooledObject(bullet.tag);
31         
if (b != null) {
32             b.transform.position =
this.transform.position;
33             b.SetActive(
true);
34         }
35     }
36
37     
void activateFlapWings3 () {
38         StartCoroutine (FlapWings3());
39     }
40
41     IEnumerator FlapWings3 () {
42         
for (float i = 0.0f; i < -45f; i-=5f) {
43             Debug.Log (
"rotating " + i);
44             transform.Rotate (Vector3.forward * -i);
45             
yield return new WaitForSeconds (0.5f);
46         }
47     }
48
49     
void FlapWings2 () {
50         
float eulerAngleY = leftWing.transform.localEulerAngles.y;
51         Debug.Log (
"eulerAngleY: " + eulerAngleY);
52         Debug.Log (
"rotateUp: " + rotateUp);
53         Debug.Log (
"leftWing.transform.localPosition: " + leftWing.transform.localPosition);
54         Debug.Log (
"leftWingPosition: " + leftWingPosition);
55         
if (rotateUp) {
56             
if ((eulerAngleY >= 305f) && (eulerAngleY <= 310f)) { // maximum vertical rotation
57                 Debug.Log(
"1 up");
58                 rotateUp =
false;
59 // leftWing.transform.Rotate (Vector3.down *
5f);
60 // rightWing.transform.Rotate (Vector3.up *
5f);
61                 leftWing.transform.RotateAround(body.transform.position, Vector3.up,
5f);
62                 rightWing.transform.RotateAround(body.transform.position, Vector3.down,
5f);
63             }
else {
64                 Debug.Log(
"2 down");
65 // leftWing.transform.Rotate (Vector3.up *
5f);
66 // rightWing.transform.Rotate (Vector3.down *
5f);
67                 leftWing.transform.RotateAround(body.transform.position, Vector3.down,
5f);
68                 rightWing.transform.RotateAround(body.transform.position, Vector3.up,
5f);
69             }
70         }
else {
71             
if ((eulerAngleY >= 0f) && (eulerAngleY <= 10f)) { // minimum vertical rotation
72                 Debug.Log(
"3 down");
73                 rotateUp =
true;
74 // leftWing.transform.Rotate (Vector3.up *
5f);
75 // rightWing.transform.Rotate (Vector3.down *
5f);
76                 leftWing.transform.RotateAround(body.transform.position, Vector3.down,
5f);
77                 rightWing.transform.RotateAround(body.transform.position, Vector3.up,
5f);
78             }
else {
79                 Debug.Log(
"4 up");
80 // leftWing.transform.Rotate (Vector3.down *
5f);
81 // rightWing.transform.Rotate (Vector3.up *
5f);
82                 leftWing.transform.RotateAround(body.transform.position, Vector3.up,
5f);
83                 rightWing.transform.RotateAround(body.transform.position, Vector3.down,
5f);
84             }
85         }
86     }
87
88     IEnumerator FlapWings () {
89         Debug.Log (
"FlapWings");
90         
yield return new WaitForSeconds (0.5f);
91         
/*
92         
while (true) {
93             Debug.Log (
"rotate up");
94 // leftWing.transform.Rotate (
new Vector3 (0, 1, 0), Space.Self);
95             leftWing.transform.RotateAround (leftWing.transform.position, Vector3.up,
45f);
96             leftWing.transform.Rotate (
new Vector3 (0, 1, 0), Space.World);
97             
yield return new WaitForSeconds (0.5f);
98             Debug.Log (
"rotate normal");
99 // leftWing.transform.Rotate (
new Vector3 (0, -1, 0), Space.Self);
100             leftWing.transform.Rotate (
new Vector3 (0, -1, 0), Space.World);
101             
yield return new WaitForSeconds (0.5f);
102             Debug.Log (
"rotate down");
103 // leftWing.transform.Rotate (
new Vector3 (0, -1, 0), Space.Self);
104             leftWing.transform.Rotate (
new Vector3 (0, -1, 0), Space.World);
105             
yield return new WaitForSeconds (0.5f);
106             Debug.Log (
"rotate normal");
107 // leftWing.transform.Rotate (
new Vector3 (0, 1, 0), Space.Self);
108             leftWing.transform.Rotate (
new Vector3 (0, 1, 0), Space.World);
109             
yield return new WaitForSeconds (0.5f);
110         }
111         */

112     }
113 }


Gõ tìm kiếm nhanh...